Solidity 函數是用來執行合約中特定的任務,函數的定義包括以下元素。
function [function name]([parameter types]) [internal|external|public|private] [pure|view|payable] [returns (<return types>)]
定義函數的關鍵字,表示我們要聲明一個函數。
函數的名稱,用於標識函數。
包含函數的參數列表,指定了函數接受的輸入參數的類型和名稱。
函數的可見性說明符,用於定義誰可以訪問這個函數。
public
可以被內部和外部的調用者訪問。
private
只能被合約內部的其他函數訪問,無法被繼承的合約使用。
external
只能被外部調用者訪問,但合約內部可以使用 this.f() 來調用它。
internal
只能被合約內部的其他函數訪問,繼承的合約也可以使用。
描述函數的狀態和權限。
pure
表示函數不會讀取或修改合約的狀態,類似於一個純函數,不消耗 gas。
view
表示函數只讀取合約的狀態,不修改它,也不消耗 gas。
payable
表示函數可以接受以太幣(ETH)的轉帳,用於向合約發送資金。
定義了函數的返回值類型和名稱,用於指定函數返回的結果。